perm filename PTMOVX.F4[PAG,LCS] blob
sn#638893 filedate 1982-01-29 generic text, type T, neo UTF8
C****** PTMOVE.F4 ALSO SUBR. TURN (FOR PAGE-TURN FINDING)
C -- Copyright 1982 by Leland Smith --
SUBROUTINE PTMOVE(RN,PWDS)
IMPLICIT INTEGER(A-Q,S-Z)
REAL POS,EXTEN,PRCNT,ACCX,SPFAC
DIMENSION R(2,400),IR(2,400),RN(1),PWDS(1)
COMMON/KNR/KR(400) /NNP/NP(400) /JSTFY/ROV,PRCNT,RJSZ
COMMON/STF/RSTFAC(0/7),RSTJ2 /KJY/ KY,JY /JWDS/RRN(3300)
COMMON R2,JA,CENTR,J2,RJQ(18),RNO,JR,LX,RDIS
COMMON/POSI/STFF(0/7),JJ2,POS/LLL/ITEM,LL,I,IX
1 /IPG/IPG,JPG,BRACK(8),RSTNUM(8),RPSZ(8)
EQUIVALENCE (R5,RJQ(3)),(R4,RJQ(2))
1,(R3,RJQ(1)),(R8,RJQ(6)),(R9,RJQ(7))
1,(IR,R,RRN)
DATA RSP/2.7/,RI/4.7/,SPFAC/2.7/
C RI IS SIZE FACTOR FOR SPACING. IF LARGER THEN REQUIRES MORE SPACE.
JJ2=-1
J2=0
C 99=BACKUP
IF(LL.EQ.'J')GO TO 12
RDIS=0
CCC66 NST=1
JJ=0
IF(R4.NE.R8.OR.R5.NE.R9)JJ=-1
JY=0
C JY IS CHANGED IN GETPTS
IF(JJ)CALL GETPTS(LX,RN,PWDS)
C****** LX NOT USED IN GETPTS ********
IF(JY.EQ.0)RETURN
CALL MOVIT(RN,KR,R4,R5,R8,R9)
RETURN
12 IF(R4.EQ.0)R4=.001
CCC IF(R5.EQ.0)R5=200
RCNT=0
RRT=R5
RZRO=R4
RJSZ=RI
CALL GETPTS(LX,RN,PWDS)
C****** LX NOT USED IN GETPTS ********
IF(JY.EQ.0)RETURN
ROV=RRT
PRCNT=1.
CCC NOT USED IN PAGE R7=R2
19 IF(RCNT.GT.9)GO TO 101
RJSZ=RJSZ-.06
RP=PRCNT
RCNT=RCNT+1
CALL JUSTFY(JPG-1,R,IR,KR,NP,RN,RPSZ,-1.0,R4,R5,R6,R8,R9)
C RPSZ HAS ADJUSTED SIZE FACTOR FOR EACH STAFF.
CCC CALL JUSTFY(JPG-1,R,IR,KR,NP,RN,RSTFAC,-1.0,R4,R5,R6,R8,R9)
110 IF(ROV.LE.RRT+.01)RETURN
IF(RJSZ.GT.4)RJSZ=4
PRCNT=(ROV-RZRO)/(RRT-RZRO)
IF(PRCNT.NE.RP)GO TO 19
C GO BACK AND EXPAND SOME MORE
101 R4=RZRO
R5=ROV
R8=RZRO
R9=RRT-.001
C JUSTIFYING SPACE DIMINISHES EACH TIME AROUND.
CALL MOVIT(RN,KR,R4,R5,R8,R9)
C RVX SHOULD BE FARTHEST POINT TO RIGHT.
END
SUBROUTINE TURN(J,K,L,X)
C FINDS RESTS BEFORE AND AFTER BAR LINES FOR PAGE TURNS
COMMON /PX/KPN(1) /Q/Q(1)
DATA RMETER/4.0/
DO 1 M=J,K,L
R=CODEN(KPN,M,Q,N)
IF(R.EQ.1)RETURN
IF(R.EQ.4)RETURN
IF(R.NE.18)GO TO 3
C FINDS LAST METER GIVEN (4/4 IS DEFAULT)
IF(Q(N+5).LT.98)GO TO 4
RMETER=4
GO TO 1
4 RMETER=4.01/Q(N+6)*Q(N+5)
C 2ND PART OF COMPOSITE METERS ARE IGNORED.*******
GO TO 1
3 IF(R.NE.2)GO TO 1
IF(Q(N).LT.6)GO TO 2
C LOOK FOR NUMBERED RESTS AND REPEAT BARS (P8=-4, -5)
IF(Q(N+8).LE.-4)RETURN
C NOW WE HAVE A NUMBERED REST. MULT. NUMB. BY RHYTH. VALUE OF METER.
X=X+Q(N+8)*RMETER
GO TO 1
2 X=X+Q(N+7)
1 CONTINUE
END